home *** CD-ROM | disk | FTP | other *** search
/ Network Supervisor's Toolkit / Network Supervisor's Toolkit.iso / perform / netframe / stp-nd.exe / lha / NXLSLIFC.386 < prev    next >
Text File  |  1990-04-26  |  3KB  |  167 lines

  1. ;
  2. ;$Module NXLSLIFC.386$
  3. ;
  4. ;Copyright 1989
  5. ;By NetFRAME Systems Inc.
  6. ;   Sunnyvale, California U.S.A.
  7. ;       
  8. ;$Author:   Karl S. Johnson  $
  9. ;$Date:   03 Apr 1990 10:46:14  $
  10. ;$Revision:   1.0  $
  11. ;
  12. ;$Description$
  13. ; C language interface for LSL assembler routines called by NX
  14. ;$EndDescription$
  15. ;
  16. ; Revision History
  17. ;$Log:   H:/386/NLMS/DX/SRC/VCS/NXLSLIFC.386  $
  18. ;  
  19. ;     Rev 1.0   03 Apr 1990 10:46:14   Karl S. Johnson
  20. ;  Initial revision.
  21. ;
  22. cproc        macro    procname
  23.         local    strname
  24.  
  25.         public    procname
  26. strname:    
  27.         db    '&procname&'
  28.         db    $ - strname
  29.  
  30. procname    proc     near
  31.         push     ebp
  32.         mov    ebp, esp
  33.         push    esi
  34.         push    edi
  35.         push    ebx
  36.         endm    
  37.  
  38.  
  39. cendp        macro    procname
  40.         pop    ebx
  41.         pop    edi
  42.         pop    esi
  43.         mov    esp, ebp
  44.         pop    ebp
  45.         ret
  46.  
  47. procname    endp
  48.         endm
  49.  
  50.  
  51.  
  52. CGROUP    GROUP OSCODE
  53. DGROUP    GROUP OSDATA
  54.  
  55. assume    cs: CGROUP, ds: DGROUP, es: DGROUP, ss: DGROUP
  56.  
  57. OSDATA    segment rw public 'DATA'
  58. OSDATA    ends
  59.  
  60. OSCODE    segment er USE32 public 'CODE'
  61.  
  62.     extrn LSLRegisterPreScanStack: near
  63.     extrn LSLDeRegisterPreScanStack: near
  64.     extrn LSLReturnRcvECB: near
  65.     extrn LSLGetRcvECB: near
  66.  
  67.     extrn NXReceiveCompletion: near
  68.     extrn NXSendCompletion: near
  69.  
  70.     cproc    CLSLRegisterPreScanStack
  71. ;    
  72. ;    int CLslRegisterMLID ( boardnumber, handlerproc, controlproc )
  73. ;    void *handlerproc(), *controlproc();
  74. ;    long boardnumber;
  75. ;
  76.     mov    ebx, 8[ebp]    ; board number
  77.     mov    ecx, 12[ebp]    ; ptr to handler proc
  78.     mov    edx, 16[ebp]    ; ptr to control proc
  79.     push    ebp
  80.     call    LSLRegisterPreScanStack
  81.  
  82. ;    EAX contains return code
  83.  
  84.     pop    ebp
  85.  
  86.     cendp    CLSLRegisterPreScanStack
  87.  
  88.  
  89.     cproc    CLSLDeRegisterPreScanStack
  90.  
  91. ;    void CLSLDeregisterPreScanStack (boardnumber);
  92. ;    long boardnumber;
  93.  
  94.     mov    ebx, 8[ebp]
  95.     push    ebp
  96.     call    LSLDeRegisterPreScanStack
  97.     pop    ebp
  98.     cendp    CLSLDeRegisterPreScanStack
  99.  
  100.  
  101.     cproc    CLSLGetECB
  102.  
  103. ;    char *CLSLGetECB ();
  104.  
  105.     push    ebp
  106.     call    LSLGetRcvECB
  107.     or    eax,eax
  108.     jnz    GetFailed
  109.     mov    eax,esi
  110.     jmp    SHORT GetReturn
  111. GetFailed:
  112.     sub    eax,eax
  113. GetReturn:
  114.     pop    ebp
  115.  
  116.     cendp    CLSLGetECB
  117.  
  118.  
  119.     cproc    CLSLReturnECB
  120.  
  121. ;    void CLSLReturnECB (TheECB);
  122. ;    char *TheECB;
  123.  
  124.     mov    esi, 8[ebp]
  125.     push    ebp
  126.     call    LSLReturnRcvECB
  127.     pop    ebp
  128.  
  129.     cendp    CLSLReturnECB
  130.  
  131.     cproc    NXReceiveDone
  132.  
  133. ;    called by LSL as the prescan handler
  134. ;    it calls NXReceiveCompletion( void *ECB )
  135.  
  136.     push    esi
  137.     call    NXReceiveCompletion
  138.     add     esp, 4
  139.  
  140.     cendp    NXReceiveDone
  141.  
  142.     cproc    NXSendDone
  143.  
  144. ;    called by LSL as the send completion handler
  145. ;    it calls NXSendCompletion( void *ECB )
  146.  
  147.     push    esi
  148.     call    NXSendCompletion
  149.     add     esp, 4
  150.  
  151.     cendp    NXSendDone
  152.  
  153.     cproc    NXControl
  154.  
  155. ;    called by LSL as the prescan control 
  156.  
  157.     mov     eax, -1
  158.     ret
  159.  
  160.     cendp    NXControl
  161.  
  162.  
  163. OSCODE  ends
  164.  
  165.  
  166.     end
  167.